package com.pig4cloud.pig.admin.api.feign;

import com.pig4cloud.pig.common.core.constant.ServiceNameConstants;
import com.pig4cloud.pig.common.core.util.R;
import com.pig4cloud.pig.common.feign.annotation.NoToken;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * 远程参数服务接口
 * <p>
 * 通过Feign客户端调用UPMS服务的公共参数管理功能，提供系统参数的远程查询服务。
 * 主要用于其他微服务获取系统级配置参数，实现配置的集中管理
 * </p>
 *
 * @author lengleng
 * @date 2025/05/30
 * @see FeignClient
 */
@FeignClient(contextId = "remoteParamService", value = ServiceNameConstants.UPMS_SERVICE)
public interface RemoteParamService {

	/**
	 * 根据key查询参数值
	 * <p>
	 * 通过参数键名获取对应的参数值，用于获取系统级配置信息。
	 * 使用@NoToken注解声明为内部调用，避免MQ等中间件无法调用
	 * </p>
	 * 
	 * @param key 参数键名，如系统名称、最大上传大小等配置键
	 * @return 包含参数值的响应结果
	 */
	@NoToken
	@GetMapping("/param/publicValue/{key}")
	R<String> getByKey(@PathVariable("key") String key);

}
